Development Basics
We provide a recommended starting point on our GitHub. Even though using it is not strictly necessary it is highly recommended.
How ETS2LA discovers and loads plugins.
After being built, ETS2LA will look into Plugins/ and discover all .dll files (this applies to Linux and MacOS too). It'll then check for IPlugin objects inside these DLLs. If a plugin fails to load it is ignored for the rest of the instance's runtime. What's important here is that plugins can provide additional DLLs they need to function in the Plugins/ folder. This will change in the future.
This system is planned to be changed in the future. A likely change is that plugins will be required to be in their own folder, i.e. Plugins/ExamplePlugin/ExamplePlugin.dll instead of Plugins/ExamplePlugin.dll. This allows plugins to include additional files without worrying about conflicts.
Libraries are loaded similarly, however they are loaded from the Libraries/ folder instead. Ensure you place libraries and plugins in correct folders. To make this easy for users who might be curious, you should include either Lib or Library in library names.
What this means for development.
ETS2LA does not care how you came up with the .dll file! There isn't a "wrong" way to develop plugins for ETS2LA, as long as your plugin is built correctly ETS2LA will run it just fine. The top of this page has a recommended setup made by us, this includes everything you need to have intellisense working. It also includes a quick launch .bat/.sh file that will boot up ETS2LA with your plugin loaded. That said if you want to develop by cloning the entire ETS2LA project that's allowed just the same.
You can read more about the development process inside the repository we linked, we really recommend you check it out :)
Question
How can I publish my plugin?
Answer
We do not yet have a publicly available plugin repository or website. You can however make users manually copy your plugin into their Plugins/ folder. This is assumed to be done via a website (take a look at Factorio!) in the near future.